package com.glsc.ngateway.common.base.enums;

import lombok.AllArgsConstructor;
import lombok.Getter;

/**
 * 流程状态
 *
 * @author xuchang
 */
@Getter
@AllArgsConstructor
public enum OaFlowXirTradeInfoStatusEnum {
    /**
     * 不可同步
     */
    DISCONTENT("DISCONTENT", "不可同步", false),
    /**
     * 已失效
     */
    INVALID("INVALID", "已失效", true),
    /**
     * 未同步
     */
    UNSYNC("UNSYNC", "未同步", false),
    /**
     * 同步失败
     */
    FAILED("FAILED", "同步失败", false),
    /**
     * 已同步
     */
    SYNCED("SYNCED", "已同步", false),
    /**
     * 已发起
     */
    BEGIN("BEGIN", "已发起", false),
    /**
     * 已结束（流程结束）
     */
    END("END", "已结束", true),
    /**
     * 作废
     */
    CANCELLED("CANCELLED", "已取消", true),
    ;
    /**
     * 编码
     */
    private final String code;
    /**
     * 描述
     */
    private final String desc;
    /**
     * 是否终态
     */
    private final boolean isEnd;

    public static boolean canSync(String status) {
        return UNSYNC.getCode().equals(status) || FAILED.getCode().equals(status);
    }
}
